// 列表视图
package main

import (
	_ "embed"
	"fmt"
	xc "gitee.com/go_888/xcgui/xcgui/xc"

	app "gitee.com/go_888/xcgui/xcgui/app"
	imagex "gitee.com/go_888/xcgui/xcgui/imagex"
	widget "gitee.com/go_888/xcgui/xcgui/widget"
	window "gitee.com/go_888/xcgui/xcgui/window"
	xcc "gitee.com/go_888/xcgui/xcgui/xcc"
)

//go:embed res/1.png
var img1 []byte

func main() {
	a := app.X创建(true)
	w := window.X创建窗口(0, 0, 465, 400, "ListView", 0, xcc.X窗口样式_默认样式)

	// 创建ListView
	lv := widget.X创建列表视图(10, 32, 445, 357, w.X句柄)
	// 创建数据适配器
	lv.X创建数据适配器()

	// 添加分组
	group1 := lv.X组添加项文本("group1", -1)
	group2 := lv.X组添加项文本("group2", -1)
	// 图片加载从内存
	img := imagex.X创建并按内存(img1)

	// 循环把图片加到分组里
	for i := 0; i < 3; i++ {
		index := lv.X项添加图片(group1, img.X句柄, -1)
		lv.X项置文本(group1, index, 1, fmt.Sprintf("group1-item%d", i))

		index = lv.X项添加图片(group2, img.X句柄, -1)
		lv.X项置文本(group2, index, 1, fmt.Sprintf("group2-item%d", i))
	}

	widget.X创建按钮(150, 0, 70, 30, "取选中项", w.X句柄).X事件_被单击(func(pbHandled *bool) int {
		n := lv.X取选择项数量()
		fmt.Println("个数:", n)
		if n == 0 {
			return 0
		}

		var slice []xc.X结构_列表视图项ID
		lv.X取选择项全部(&slice, n)
		for _, item := range slice {
			fmt.Println(item)
		}

		var a, b int32
		lv.X取选择项(&a, &b)
		fmt.Println("GetSelectItem:", a, b)
		return 0
	})

	w.X显示方式(xcc.SW_SHOW)
	a.X运行()
	a.X退出()
}
